package user;

import book.Booklist;
import work.Iwork;

import java.util.Arrays;
import java.util.Scanner;

public abstract class User {
    protected String username;
    protected Iwork[] Iwork;
    public static Scanner scanner=new Scanner(System.in);
    //重写用户菜单，实现不同用户多态。该方法在User类中无需实现，直接写成抽象方法即可。
    public abstract int menu();
    public static User login(){
        System.out.println("欢迎使用图书管理系统");
        System.out.println("请输入你的用户名");
        Scanner scanner=new Scanner(System.in);
        String username=scanner.next();
        System.out.println("请选择身份：0.管理员，1.普通用户");
        int usertype=scanner.nextInt();
        if(usertype==0){
            if(AdminUser.verification()) {
                return new AdminUser(username);
            }else{
                System.out.println("验证失败，将以普通用户身份进入");
                return new NormalUser(username);
            }
        }else{
            return new NormalUser(username);
        }
    }
    //dowork方法写在父类里，方便改动。在子类的构造方法里确定不同work方法的顺序。
    public  void dobookswork(int choice,Booklist booklist){
        if(choice>Iwork.length || choice<=0){
            System.out.println("指令输入出错，请重新输入。");
            return;
        }
        //通过定义类数组，数组里的类实现了Iwork接口，执行统一标准的:work方法
        Iwork[choice-1].work(booklist);
    }
}
